package com.agua.enturno.persistencia.dao;

import org.hibernate.criterion.DetachedCriteria;

import java.io.Serializable;
import java.util.List;


public interface GenericDAO<T, ID extends Serializable> {

    T findById(ID id);
    
    List<T> findByExample(T exampleEntity);
    
    List<T> findByCriteria(DetachedCriteria criteria);

    List<T> findAll();

    T saveOrUpdate(T entity);
    
    void delete(T entity);
    
    void flushSession();
    
    void clearSession();
    
}
